{# Overseer > Deployments > New server (overseer_deployments._steps_context): the steps to a server, each read from what is true (the agent's heartbeat, a token, the records): done ones in a line, the one at hand (and the optional Domain, whose provider can change) open. While a server is being created, or one stopped part way, only its job. A deployed server, or a project with a server already, says where to go instead. #} {% from "components/macros/layout.html" import card %} {% from "pages/overseer/deployments/_macros.html" import agent_note, by_hand, deployed_card, goto, job_panel, note, picker, step %} {% from "pages/overseer/deployments/_keys.html" import keys with context %} {% if actions.view == "deployed" %} {{ deployed_card(actions) }} {% elif actions.view == "creating" %} {% call card("Creating the server", id="card-deploy") %} {{ agent_note(actions.agent) }} {{ job_panel(actions) }} {% endcall %} {% elif actions.view == "has-server" %} {% call card("Put it on a server", id="card-deploy") %}

This project deploys to {{ actions.server.name }} already: deploy, back up and roll back it from the {{ goto(overview_url, "Overview") }}.

{% endcall %} {% else %} {% call card("Put it on a server", id="card-deploy") %}
    {% for s in actions.steps %} {% call step(loop.index, s) %} {% if s.key == "agent" %} {{ agent_note(actions.agent) }} {% elif s.key == "domain" %}

    A name of your own (like app.example.com) needs the DNS provider that holds the domain, and its keys, so the server's record is made for you. Without one, it gets an sslip.io name.

    {{ picker("DNS provider", "dns", actions.dns, actions.dns_choice, nothing="None (an sslip.io name)") }} {{ by_hand(actions.dns, "dns", model="dns") }} {% for d in actions.dns %}
    {{ keys("dns", d) }}
    {% endfor %} {% elif s.key == "server" %} {{ picker("Cloud", "cloud", actions.clouds, actions.cloud_choice) }} {{ by_hand(actions.clouds, "cloud", model="cloud") }} {% for d in actions.clouds %}
    {{ keys("cloud", d) }} {% if d.form %}{% with p = d.form %}{% include "pages/overseer/deployments/_provision.html" %}{% endwith %} {% elif d.held %}

    Start the deploy agent (the first step) to create a server on {{ d.name }}.

    {% endif %}
    {% endfor %}

    Creating it also deploys the app there, with HTTPS.

    {{ job_panel(actions) }} {% endif %} {% endcall %} {% endfor %}
{% endcall %} {% endif %}